In devices with pulse width modulated (PWM) switching driven windings, such as a spindle motor, it may be necessary to precisely measure the instantaneous value of some significant electrical magnitude, such as the back electromotive force (BEMF), and more specifically, the zero-cross instant of these generally alternating signals. The zero-cross detection of back electromotive forces in the windings of spindle motors may be useful to synchronize the phase switching with the rotor position to produce greater and more uniform torque. Particularly, the zero-cross detection of BEMFs is useful to drive the permanent magnet synchronous motors (PMSM) employed as spindle motors in a Hard Disk, CD, DVD, etc.
Detection of the crossing instants of pre-established threshold values by alternating electrical signals may be conveniently made by shifting the level of the signal by an amount equal to and of opposite sign of the threshold value and detecting the zero-cross instants of the level-shifted signal. Given that detection of the crossing instants of a certain threshold value by an electrical signal is equivalent to detecting the zero-cross instants of a suitably level shifted signal, the ensuing description will refer only to the detection of zero-cross events.
A method to detect the zero-cross of a BEMF is disclosed in U.S. Pat. No. 5,969,491 to Viti et al. which refers to a method for sensing a position of a rotor of a multi-phase brushless motor. The brushless motor includes a permanent magnet rotor, and a stator having a number of windings that may be connected in a star configuration, in a polygon (delta) configuration, or even independently from the one another. Star or polygon configurations may have a number of externally accessible terminals equal the number of phase windings of the motor (eventually with an additional terminal if the star center is made accessible). Alternatively, in cases of motors with independent phase windings, both terminals of all the phase windings are accessible. The method of U.S. Pat. No. 5,969,491 to Viti et al. uses a zero-cross detecting circuit for voltage induced on a respective phase winding of the motor driven in a multi-polar mode. The zero-cross detecting circuit comprises a differential amplifier. The method comprises interrupting a driving current of at least one of the phase windings of the motor coupled to a respective zero-cross detecting circuit by placing in a high impedance state an output of a respective driving stage using a first logic signal, and closing for a predetermined time beginning with a switching instant of the first logic signal a short-circuiting switch for inputs of the differential amplifier of the at least one zero-crossing detecting circuit using a second logic signal. The method includes enabling an asserting logic gate of a zero-cross event detected by the zero-cross detecting circuit starting from an instant of re-opening of the short-circuiting switch using a third logic signal and resetting the first logic signal and the third logic signal a period of time after the interrupting.
The driving is typically used for the PMSMs is of the PWM type, which causes the generation of disturbances at the switching instants. The disturbances may interfere with the detection of the zero-cross of a BEMF. To avoid affecting the accuracy of the zero-cross event detection, an approach may be adopted, that is a masking circuit for producing a masking signal. The masking signal has a rising edge at every front or edge of the PWM driving signal, thus preventing detection of a zero-cross event. If a zero-cross event occurs immediately after a front of the driving PWM signal, the zero-cross event will not be immediately detected by the system because the presence of the masking signal producing the masking time window. Therefore, the zero-cross event will be detected with a certain delay, i.e. when the masking signal ceases to exist.
U.S. Pat. No. 6,420,847 to Galbiati et al. discloses a method of detecting the zero-cross event of an induced BEMF. U.S. Pat. No. 6,420,847 to Galbiati et al. discloses generating an analog signal representative of the BEMF, comparing the analog signal with zero and producing a first logic signal, generating a PWM driving signal, storing the duration of the time interval between two consecutive zero-cross events, storing the value of the time interval between the last two events of zero-cross detected, synchronizing the PWM driving signal at the end of a time interval from the instant of the last zero-cross detected of duration equal to the difference between a time established in function of the stored value and a first prefixed value, and if a new zero-cross event is not detected within the established time, disabling the switching of the PWM signal for a time interval, the maximum duration of which is equal to a second prefixed value or until the occurrence of a new zero-cross event.
A condition to ensure the detection of the zero-cross of the BEMF is to have a duration of the PWM time switching period equal to at least twice the duration of the masking time window. This allows the duration of the on-time period TON or the off-time period TOFF of the PWM time switching period to have a duration always higher than or equal to the duration of the masking time window so that the detection of the zero-cross of the BEMF occurs regardless to the used duty-cycle value. In this way, the detection of the zero-cross of the BEMF occurs during the on-time period TON if the duty-cycle is higher than 50% or during the off-time period TOFF if the duty-cycle is lower than 50%.
However, there are some situations where the detection of the zero-cross of the BEMF should be carried out during the on-time period TON, i.e. when the current flows through the windings where no zero-cross of the BEMF must be detected, if the duty-cycle is lower than 50%. In this situation, setting the PWM time switching period equal to at least twice the duration of the masking time window does not ensure that the duration of the on-time period TON is higher than the duration of the masking time window.
A duty-cycle value, as a function of the selected PWM time switching period and masking time window, should be set to ensure the detection of the zero-cross of the BEMF during the on-time period TON. However, a minimum duty-cycle value may not be always set because, in the application where the duty-cycle value may assume a very low value, the setting of a minimum duty-cycle value corresponds to set a minimum current value flowing through the motor windings which is higher than the desired value. In these cases, the detection of the zero-cross of the BEMF during the on-time period TON ensures the desired current flows through the motor windings. This may be carried out by selecting a PWM time switching period value much higher than the masking time window value but this may not be possible when the duty-cycle is very low.